home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / documents / RFC / rfc1036.txt < prev    next >
Text File  |  1994-08-01  |  46KB  |  1,067 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          M. Horton
  8. Request for Comments:  1036                       AT&T Bell Laboratories
  9. Obsoletes: RFC-850                                              R. Adams
  10.                                               Center for Seismic Studies
  11.                                                            December 1987
  12.  
  13.  
  14.               Standard for Interchange of USENET Messages
  15.  
  16.  
  17.  
  18. STATUS OF THIS MEMO
  19.  
  20.     This document defines the standard format for the interchange of
  21.     network News messages among USENET hosts.  It updates and replaces
  22.     RFC-850, reflecting version B2.11 of the News program.  This memo is
  23.     disributed as an RFC to make this information easily accessible to
  24.     the Internet community.  It does not specify an Internet standard.
  25.     Distribution of this memo is unlimited.
  26.  
  27. 1.  Introduction
  28.  
  29.     This document defines the standard format for the interchange of
  30.     network News messages among USENET hosts.  It describes the format
  31.     for messages themselves and gives partial standards for transmission
  32.     of news.  The news transmission is not entirely in order to give a
  33.     good deal of flexibility to the hosts to choose transmission
  34.     hardware and software, to batch news, and so on.
  35.  
  36.     There are five sections to this document.  Section two defines the
  37.     format.  Section three defines the valid control messages.  Section
  38.     four specifies some valid transmission methods.  Section five
  39.     describes the overall news propagation algorithm.
  40.  
  41. 2.  Message Format
  42.  
  43.     The primary consideration in choosing a message format is that it
  44.     fit in with existing tools as well as possible.  Existing tools
  45.     include implementations of both mail and news.  (The notesfiles
  46.     system from the University of Illinois is considered a news
  47.     implementation.)  A standard format for mail messages has existed
  48.     for many years on the Internet, and this format meets most of the
  49.     needs of USENET.  Since the Internet format is extensible,
  50.     extensions to meet the additional needs of USENET are easily made
  51.     within the Internet standard.  Therefore, the rule is adopted that
  52.     all USENET news messages must be formatted as valid Internet mail
  53.     messages, according to the Internet standard RFC-822.  The USENET
  54.     News standard is more restrictive than the Internet standard,
  55.  
  56.  
  57.  
  58. Horton & Adams                                                  [Page 1]
  59.  
  60. RFC 1036              Standard for USENET Messages         December 1987
  61.  
  62.  
  63.     placing additional requirements on each message and forbidding use
  64.     of certain Internet features.  However, it should always be possible
  65.     to use a tool expecting an Internet message to process a news
  66.     message.  In any situation where this standard conflicts with the
  67.     Internet standard, RFC-822 should be considered correct and this
  68.     standard in error.
  69.  
  70.     Here is an example USENET message to illustrate the fields.
  71.  
  72.               From: jerry@eagle.ATT.COM (Jerry Schwarz)
  73.               Path: cbosgd!mhuxj!mhuxt!eagle!jerry
  74.               Newsgroups: news.announce
  75.               Subject: Usenet Etiquette -- Please Read
  76.               Message-ID: <642@eagle.ATT.COM>
  77.               Date: Fri, 19 Nov 82 16:14:55 GMT
  78.               Followup-To: news.misc
  79.               Expires: Sat, 1 Jan 83 00:00:00 -0500
  80.               Organization: AT&T Bell Laboratories, Murray Hill
  81.  
  82.               The body of the message comes here, after a blank line.
  83.  
  84.       Here is an example of a message in the old format (before the
  85.       existence of this standard). It is recommended that
  86.       implementations also accept messages in this format to ease upward
  87.       conversion.
  88.  
  89.                From: cbosgd!mhuxj!mhuxt!eagle!jerry (Jerry Schwarz)
  90.                Newsgroups: news.misc
  91.                Title: Usenet Etiquette -- Please Read
  92.                Article-I.D.: eagle.642
  93.                Posted: Fri Nov 19 16:14:55 1982
  94.                Received: Fri Nov 19 16:59:30 1982
  95.                Expires: Mon Jan 1 00:00:00 1990
  96.  
  97.                The body of the message comes here, after a blank line.
  98.  
  99.       Some news systems transmit news in the A format, which looks like
  100.       this:
  101.  
  102.                 Aeagle.642
  103.                 news.misc
  104.                 cbosgd!mhuxj!mhuxt!eagle!jerry
  105.                 Fri Nov 19 16:14:55 1982
  106.                 Usenet Etiquette - Please Read
  107.                 The body of the message comes here, with no blank line.
  108.  
  109.     A standard USENET message consists of several header lines, followed
  110.     by a blank line, followed by the body of the message.  Each header
  111.  
  112.  
  113.  
  114. Horton & Adams                                                  [Page 2]
  115.  
  116. RFC 1036              Standard for USENET Messages         December 1987
  117.  
  118.  
  119.     line consist of a keyword, a colon, a blank, and some additional
  120.     information.  This is a subset of the Internet standard, simplified
  121.     to allow simpler software to handle it.  The "From" line may
  122.     optionally include a full name, in the format above, or use the
  123.     Internet angle bracket syntax.  To keep the implementations simple,
  124.     other formats (for example, with part of the machine address after
  125.     the close parenthesis) are not allowed.  The Internet convention of
  126.     continuation header lines (beginning with a blank or tab) is
  127.     allowed.
  128.  
  129.     Certain headers are required, and certain other headers are
  130.     optional.  Any unrecognized headers are allowed, and will be passed
  131.     through unchanged.  The required header lines are "From", "Date",
  132.     "Newsgroups", "Subject", "Message-ID", and "Path".  The optional
  133.     header lines are "Followup-To", "Expires", "Reply-To", "Sender",
  134.     "References", "Control", "Distribution", "Keywords", "Summary",
  135.     "Approved", "Lines", "Xref", and "Organization".  Each of these
  136.     header lines will be described below.
  137.  
  138. 2.1.  Required Header lines
  139.  
  140. 2.1.1.  From
  141.  
  142.     The "From" line contains the electronic mailing address of the
  143.     person who sent the message, in the Internet syntax.  It may
  144.     optionally also contain the full name of the person, in parentheses,
  145.     after the electronic address.  The electronic address is the same as
  146.     the entity responsible for originating the message, unless the
  147.     "Sender" header is present, in which case the "From" header might
  148.     not be verified.  Note that in all host and domain names, upper and
  149.     lower case are considered the same, thus "mark@cbosgd.ATT.COM",
  150.     "mark@cbosgd.att.com", and "mark@CBosgD.ATt.COm" are all equivalent.
  151.     User names may or may not be case sensitive, for example,
  152.     "Billy@cbosgd.ATT.COM" might be different from
  153.     "BillY@cbosgd.ATT.COM".  Programs should avoid changing the case of
  154.     electronic addresses when forwarding news or mail.
  155.  
  156.     RFC-822 specifies that all text in parentheses is to be interpreted
  157.     as a comment.  It is common in Internet mail to place the full name
  158.     of the user in a comment at the end of the "From" line.  This
  159.     standard specifies a more rigid syntax.  The full name is not
  160.     considered a comment, but an optional part of the header line.
  161.     Either the full name is omitted, or it appears in parentheses after
  162.     the electronic address of the person posting the message, or it
  163.     appears before an electronic address which is enclosed in angle
  164.     brackets.  Thus, the three permissible forms are:
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Horton & Adams                                                  [Page 3]
  171.  
  172. RFC 1036              Standard for USENET Messages         December 1987
  173.  
  174.  
  175.               From: mark@cbosgd.ATT.COM
  176.               From: mark@cbosgd.ATT.COM (Mark Horton)
  177.               From: Mark Horton <mark@cbosgd.ATT.COM>
  178.  
  179.     Full names may contain any printing ASCII characters from space
  180.     through tilde, except that they may not contain "(" (left
  181.     parenthesis), ")" (right parenthesis), "<" (left angle bracket), or
  182.     ">" (right angle bracket).  Additional restrictions may be placed on
  183.     full names by the mail standard, in particular, the characters ","
  184.     (comma), ":" (colon), "@" (at), "!" (bang), "/" (slash), "="
  185.     (equal), and ";" (semicolon) are inadvisable in full names.
  186.  
  187. 2.1.2.  Date
  188.  
  189.     The "Date" line (formerly "Posted") is the date that the message was
  190.     originally posted to the network.  Its format must be acceptable
  191.     both in RFC-822 and to the getdate(3) routine that is provided with
  192.     the Usenet software.  This date remains unchanged as the message is
  193.     propagated throughout the network.  One format that is acceptable to
  194.     both is:
  195.  
  196.                       Wdy, DD Mon YY HH:MM:SS TIMEZONE
  197.  
  198.     Several examples of valid dates appear in the sample message above.
  199.     Note in particular that ctime(3) format:
  200.  
  201.                           Wdy Mon DD HH:MM:SS YYYY
  202.  
  203.     is not acceptable because it is not a valid RFC-822 date.  However,
  204.     since older software still generates this format, news
  205.     implementations are encouraged to accept this format and translate
  206.     it into an acceptable format.
  207.  
  208.     There is no hope of having a complete list of timezones.  Universal
  209.     Time (GMT), the North American timezones (PST, PDT, MST, MDT, CST,
  210.     CDT, EST, EDT) and the +/-hhmm offset specifed in RFC-822 should be
  211.     supported.  It is recommended that times in message headers be
  212.     transmitted in GMT and displayed in the local time zone.
  213.  
  214. 2.1.3.  Newsgroups
  215.  
  216.     The "Newsgroups" line specifies the newsgroup or newsgroups in which
  217.     the message belongs.  Multiple newsgroups may be specified,
  218.     separated by a comma.  Newsgroups specified must all be the names of
  219.     existing newsgroups, as no new newsgroups will be created by simply
  220.     posting to them.
  221.  
  222.  
  223.  
  224.  
  225.  
  226. Horton & Adams                                                  [Page 4]
  227.  
  228. RFC 1036              Standard for USENET Messages         December 1987
  229.  
  230.  
  231.     Wildcards (e.g., the word "all") are never allowed in a "News-
  232.     groups" line.  For example, a newsgroup comp.all is illegal,
  233.     although a newsgroup rec.sport.football is permitted.
  234.  
  235.     If a message is received with a "Newsgroups" line listing some valid
  236.     newsgroups and some invalid newsgroups, a host should not remove
  237.     invalid newsgroups from the list.  Instead, the invalid newsgroups
  238.     should be ignored.  For example, suppose host A subscribes to the
  239.     classes btl.all and comp.all, and exchanges news messages with host
  240.     B, which subscribes to comp.all but not btl.all.  Suppose A receives
  241.     a message with Newsgroups: comp.unix,btl.general.
  242.  
  243.     This message is passed on to B because B receives comp.unix, but B
  244.     does not receive btl.general.  A must leave the "Newsgroups" line
  245.     unchanged.  If it were to remove btl.general, the edited header
  246.     could eventually re-enter the btl.all class, resulting in a message
  247.     that is not shown to users subscribing to btl.general.  Also,
  248.     follow-ups from outside btl.all would not be shown to such users.
  249.  
  250. 2.1.4.  Subject
  251.  
  252.     The "Subject" line (formerly "Title") tells what the message is
  253.     about.  It should be suggestive enough of the contents of the
  254.     message to enable a reader to make a decision whether to read the
  255.     message based on the subject alone.  If the message is submitted in
  256.     response to another message (e.g., is a follow-up) the default
  257.     subject should begin with the four characters "Re:", and the
  258.     "References" line is required.  For follow-ups, the use of the
  259.     "Summary" line is encouraged.
  260.  
  261. 2.1.5.  Message-ID
  262.  
  263.     The "Message-ID" line gives the message a unique identifier.  The
  264.     Message-ID may not be reused during the lifetime of any previous
  265.     message with the same Message-ID.  (It is recommended that no
  266.     Message-ID be reused for at least two years.)  Message-ID's have the
  267.     syntax:
  268.  
  269.                      <string not containing blank or ">">
  270.  
  271.     In order to conform to RFC-822, the Message-ID must have the format:
  272.  
  273.                           <unique@full_domain_name>
  274.  
  275.     where full_domain_name is the full name of the host at which the
  276.     message entered the network, including a domain that host is in, and
  277.     unique is any string of printing ASCII characters, not including "<"
  278.     (left angle bracket), ">" (right angle bracket), or "@" (at sign).
  279.  
  280.  
  281.  
  282. Horton & Adams                                                  [Page 5]
  283.  
  284. RFC 1036              Standard for USENET Messages         December 1987
  285.  
  286.  
  287.     For example, the unique part could be an integer representing a
  288.     sequence number for messages submitted to the network, or a short
  289.     string derived from the date and time the message was created.  For
  290.     example, a valid Message-ID for a message submitted from host ucbvax
  291.     in domain "Berkeley.EDU" would be "<4123@ucbvax.Berkeley.EDU>".
  292.     Programmers are urged not to make assumptions about the content of
  293.     Message-ID fields from other hosts, but to treat them as unknown
  294.     character strings.  It is not safe, for example, to assume that a
  295.     Message-ID will be under 14 characters, that it is unique in the
  296.     first 14 characters, nor that is does not contain a "/".
  297.  
  298.     The angle brackets are considered part of the Message-ID.  Thus, in
  299.     references to the Message-ID, such as the ihave/sendme and cancel
  300.     control messages, the angle brackets are included.  White space
  301.     characters (e.g., blank and tab) are not allowed in a Message-ID.
  302.     Slashes ("/") are strongly discouraged.  All characters between the
  303.     angle brackets must be printing ASCII characters.
  304.  
  305. 2.1.6.  Path
  306.  
  307.     This line shows the path the message took to reach the current
  308.     system.  When a system forwards the message, it should add its own
  309.     name to the list of systems in the "Path" line.  The names may be
  310.     separated by any punctuation character or characters (except "."
  311.     which is considered part of the hostname).  Thus, the following are
  312.     valid entries:
  313.  
  314.                    cbosgd!mhuxj!mhuxt
  315.                    cbosgd, mhuxj, mhuxt
  316.                    @cbosgd.ATT.COM,@mhuxj.ATT.COM,@mhuxt.ATT.COM
  317.                    teklabs, zehntel, sri-unix@cca!decvax
  318.  
  319.     (The latter path indicates a message that passed through decvax,
  320.     cca, sri-unix, zehntel, and teklabs, in that order.) Additional
  321.     names should be added from the left.  For example, the most recently
  322.     added name in the fourth example was teklabs.  Letters, digits,
  323.     periods and hyphens are considered part of host names; other
  324.     punctuation, including blanks, are considered separators.
  325.  
  326.     Normally, the rightmost name will be the name of the originating
  327.     system.  However, it is also permissible to include an extra entry
  328.     on the right, which is the name of the sender.  This is for upward
  329.     compatibility with older systems.
  330.  
  331.     The "Path" line is not used for replies, and should not be taken as
  332.     a mailing address.  It is intended to show the route the message
  333.     traveled to reach the local host.  There are several uses for this
  334.     information.  One is to monitor USENET routing for performance
  335.  
  336.  
  337.  
  338. Horton & Adams                                                  [Page 6]
  339.  
  340. RFC 1036              Standard for USENET Messages         December 1987
  341.  
  342.  
  343.     reasons.  Another is to establish a path to reach new hosts.
  344.     Perhaps the most important use is to cut down on redundant USENET
  345.     traffic by failing to forward a message to a host that is known to
  346.     have already received it.  In particular, when host A sends a
  347.     message to host B, the "Path" line includes A, so that host B will
  348.     not immediately send the message back to host A.  The name each host
  349.     uses to identify itself should be the same as the name by which its
  350.     neighbors know it, in order to make this optimization possible.
  351.  
  352.     A host adds its own name to the front of a path when it receives a
  353.     message from another host.  Thus, if a message with path "A!X!Y!Z"
  354.     is passed from host A to host B, B will add its own name to the path
  355.     when it receives the message from A, e.g., "B!A!X!Y!Z".  If B then
  356.     passes the message on to C, the message sent to C will contain the
  357.     path "B!A!X!Y!Z", and when C receives it, C will change it to
  358.     "C!B!A!X!Y!Z".
  359.  
  360.     Special upward compatibility note:  Since the "From", "Sender", and
  361.     "Reply-To" lines are in Internet format, and since many USENET hosts
  362.     do not yet have mailers capable of understanding Internet format, it
  363.     would break the reply capability to completely sever the connection
  364.     between the "Path" header and the reply function.  It is recognized
  365.     that the path is not always a valid reply string in older
  366.     implementations, and no requirement to fix this problem is placed on
  367.     implementations.  However, the existing convention of placing the
  368.     host name and an "!"  at the front of the path, and of starting the
  369.     path with the host name, an "!", and the user name, should be
  370.     maintained when possible.
  371.  
  372. 2.2.  Optional Headers
  373.  
  374. 2.2.1.  Reply-To
  375.  
  376.     This line has the same format as "From".  If present, mailed replies
  377.     to the author should be sent to the name given here.  Otherwise,
  378.     replies are mailed to the name on the "From" line. (This does not
  379.     prevent additional copies from being sent to recipients named by the
  380.     replier, or on "To" or "Cc" lines.)  The full name may be optionally
  381.     given, in parentheses, as in the "From" line.
  382.  
  383. 2.2.2.  Sender
  384.  
  385.     This field is present only if the submitter manually enters a "From"
  386.     line.  It is intended to record the entity responsible for
  387.     submitting the message to the network.  It should be verified by the
  388.     software at the submitting host.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Horton & Adams                                                  [Page 7]
  395.  
  396. RFC 1036              Standard for USENET Messages         December 1987
  397.  
  398.  
  399.     For example, if John Smith is visiting CCA and wishes to post a
  400.     message to the network, using friend Sarah Jones' account, the
  401.     message might read:
  402.  
  403.               From: smith@ucbvax.Berkeley.EDU (John Smith)
  404.               Sender: jones@cca.COM (Sarah Jones)
  405.  
  406.     If a gateway program enters a mail message into the network at host
  407.     unix.SRI.COM, the lines might read:
  408.  
  409.               From: John.Doe@A.CS.CMU.EDU
  410.               Sender: network@unix.SRI.COM
  411.  
  412.     The primary purpose of this field is to be able to track down
  413.     messages to determine how they were entered into the network.  The
  414.     full name may be optionally given, in parentheses, as in the "From"
  415.     line.
  416.  
  417. 2.2.3.  Followup-To
  418.  
  419.     This line has the same format as "Newsgroups".  If present, follow-
  420.     up messages are to be posted to the newsgroup or newsgroups listed
  421.     here.  If this line is not present, follow-ups are posted to the
  422.     newsgroup or newsgroups listed in the "Newsgroups" line.
  423.  
  424.     If the keyword poster is present, follow-up messages are not
  425.     permitted.  The message should be mailed to the submitter of the
  426.     message via mail.
  427.  
  428. 2.2.4.  Expires
  429.  
  430.     This line, if present, is in a legal USENET date format.  It
  431.     specifies a suggested expiration date for the message.  If not
  432.     present, the local default expiration date is used.  This field is
  433.     intended to be used to clean up messages with a limited usefulness,
  434.     or to keep important messages around for longer than usual.  For
  435.     example, a message announcing an upcoming seminar could have an
  436.     expiration date the day after the seminar, since the message is not
  437.     useful after the seminar is over.  Since local hosts have local
  438.     policies for expiration of news (depending on available disk space,
  439.     for instance), users are discouraged from providing expiration dates
  440.     for messages unless there is a natural expiration date associated
  441.     with the topic.  System software should almost never provide a
  442.     default "Expires" line.  Leave it out and allow local policies to be
  443.     used unless there is a good reason not to.
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Horton & Adams                                                  [Page 8]
  451.  
  452. RFC 1036              Standard for USENET Messages         December 1987
  453.  
  454.  
  455. 2.2.5.  References
  456.  
  457.     This field lists the Message-ID's of any messages prompting the
  458.     submission of this message.  It is required for all follow-up
  459.     messages, and forbidden when a new subject is raised.
  460.     Implementations should provide a follow-up command, which allows a
  461.     user to post a follow-up message.  This command should generate a
  462.     "Subject" line which is the same as the original message, except
  463.     that if the original subject does not begin with "Re:" or "re:", the
  464.     four characters "Re:" are inserted before the subject.  If there is
  465.     no "References" line on the original header, the "References" line
  466.     should contain the Message-ID of the original message (including the
  467.     angle brackets).  If the original message does have a "References"
  468.     line, the follow-up message should have a "References" line
  469.     containing the text of the original "References" line, a blank, and
  470.     the Message-ID of the original message.
  471.  
  472.     The purpose of the "References" header is to allow messages to be
  473.     grouped into conversations by the user interface program.  This
  474.     allows conversations within a newsgroup to be kept together, and
  475.     potentially users might shut off entire conversations without
  476.     unsubscribing to a newsgroup.  User interfaces need not make use of
  477.     this header, but all automatically generated follow-ups should
  478.     generate the "References" line for the benefit of systems that do
  479.     use it, and manually generated follow-ups (e.g., typed in well after
  480.     the original message has been printed by the machine) should be
  481.     encouraged to include them as well.
  482.  
  483.     It is permissible to not include the entire previous "References"
  484.     line if it is too long.  An attempt should be made to include a
  485.     reasonable number of backwards references.
  486.  
  487. 2.2.6.  Control
  488.  
  489.     If a message contains a "Control" line, the message is a control
  490.     message.  Control messages are used for communication among USENET
  491.     host machines, not to be read by users.  Control messages are
  492.     distributed by the same newsgroup mechanism as ordinary messages.
  493.     The body of the "Control" header line is the message to the host.
  494.  
  495.     For upward compatibility, messages that match the newsgroup pattern
  496.     "all.all.ctl" should also be interpreted as control messages.  If no
  497.     "Control" header is present on such messages, the subject is used as
  498.     the control message.  However, messages on newsgroups matching this
  499.     pattern do not conform to this standard.
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Horton & Adams                                                  [Page 9]
  507.  
  508. RFC 1036              Standard for USENET Messages         December 1987
  509.  
  510.  
  511.     Also for upward compatibility, if the first 4 characters of the
  512.     "Subject:" line are "cmsg", the rest of the "Subject:" line should
  513.     be interpreted as a control message.
  514.  
  515. 2.2.7.  Distribution
  516.  
  517.     This line is used to alter the distribution scope of the message.
  518.     It is a comma separated list similar to the "Newsgroups" line.  User
  519.     subscriptions are still controlled by "Newsgroups", but the message
  520.     is sent to all systems subscribing to the newsgroups on the
  521.     "Distribution" line in addition to the "Newsgroups" line.  For the
  522.     message to be transmitted, the receiving site must normally receive
  523.     one of the specified newsgroups AND must receive one of the
  524.     specified distributions.  Thus, a message concerning a car for sale
  525.     in New Jersey might have headers including:
  526.  
  527.                    Newsgroups: rec.auto,misc.forsale
  528.                    Distribution: nj,ny
  529.  
  530.     so that it would only go to persons subscribing to rec.auto or misc.
  531.     for sale within New Jersey or New York.  The intent of this header
  532.     is to restrict the distribution of a newsgroup further, not to
  533.     increase it.  A local newsgroup, such as nj.crazy-eddie, will
  534.     probably not be propagated by hosts outside New Jersey that do not
  535.     show such a newsgroup as valid.  A follow-up message should default
  536.     to the same "Distribution" line as the original message, but the
  537.     user can change it to a more limited one, or escalate the
  538.     distribution if it was originally restricted and a more widely
  539.     distributed reply is appropriate.
  540.  
  541. 2.2.8.  Organization
  542.  
  543.     The text of this line is a short phrase describing the organization
  544.     to which the sender belongs, or to which the machine belongs.  The
  545.     intent of this line is to help identify the person posting the
  546.     message, since host names are often cryptic enough to make it hard
  547.     to recognize the organization by the electronic address.
  548.  
  549. 2.2.9.  Keywords
  550.  
  551.     A few well-selected keywords identifying the message should be on
  552.     this line.  This is used as an aid in determining if this message is
  553.     interesting to the reader.
  554.  
  555. 2.2.10.  Summary
  556.  
  557.     This line should contain a brief summary of the message.  It is
  558.     usually used as part of a follow-up to another message.  Again, it
  559.  
  560.  
  561.  
  562. Horton & Adams                                                 [Page 10]
  563.  
  564. RFC 1036              Standard for USENET Messages         December 1987
  565.  
  566.  
  567.     is very useful to the reader in determining whether to read the
  568.     message.
  569.  
  570. 2.2.11.  Approved
  571.  
  572.     This line is required for any message posted to a moderated
  573.     newsgroup.  It should be added by the moderator and consist of his
  574.     mail address.  It is also required with certain control messages.
  575.  
  576. 2.2.12.  Lines
  577.  
  578.     This contains a count of the number of lines in the body of the
  579.     message.
  580.  
  581. 2.2.13.  Xref
  582.  
  583.     This line contains the name of the host (with domains omitted) and a
  584.     white space separated list of colon-separated pairs of newsgroup
  585.     names and message numbers.  These are the newsgroups listed in the
  586.     "Newsgroups" line and the corresponding message numbers from the
  587.     spool directory.
  588.  
  589.     This is only of value to the local system, so it should not be
  590.     transmitted.  For example, in:
  591.  
  592.                Path: seismo!lll-crg!lll-lcc!pyramid!decwrl!reid
  593.                From: reid@decwrl.DEC.COM (Brian Reid)
  594.                Newsgroups: news.lists,news.groups
  595.                Subject: USENET READERSHIP SUMMARY REPORT FOR SEP 86
  596.                Message-ID: <5658@decwrl.DEC.COM>
  597.                Date: 1 Oct 86 11:26:15 GMT
  598.                Organization: DEC Western Research Laboratory
  599.                Lines: 441
  600.                Approved: reid@decwrl.UUCP
  601.                Xref: seismo news.lists:461 news.groups:6378
  602.  
  603.     the "Xref" line shows that the message is message number 461 in the
  604.     newsgroup news.lists, and message number 6378 in the newsgroup
  605.     news.groups, on host seismo.  This information may be used by
  606.     certain user interfaces.
  607.  
  608. 3.  Control Messages
  609.  
  610.     This section lists the control messages currently defined.  The body
  611.     of the "Control" header line is the control message.  Messages are a
  612.     sequence of zero or more words, separated by white space (blanks or
  613.     tabs).  The first word is the name of the control message, remaining
  614.     words are parameters to the message.  The remainder of the header
  615.  
  616.  
  617.  
  618. Horton & Adams                                                 [Page 11]
  619.  
  620. RFC 1036              Standard for USENET Messages         December 1987
  621.  
  622.  
  623.     and the body of the message are also potential parameters; for
  624.     example, the "From" line might suggest an address to which a
  625.     response is to be mailed.
  626.  
  627.     Implementors and administrators may choose to allow control messages
  628.     to be carried out automatically, or to queue them for annual
  629.     processing.  However, manually processed messages should be dealt
  630.     with promptly.
  631.  
  632.     Failed control messages should NOT be mailed to the originator of
  633.     the message, but to the local "usenet" account.
  634.  
  635. 3.1.  Cancel
  636.  
  637.                      cancel <Message-ID>
  638.  
  639.  
  640.     If a message with the given Message-ID is present on the local
  641.     system, the message is cancelled.  This mechanism allows a user to
  642.     cancel a message after the message has been distributed over the
  643.     network.
  644.  
  645.     If the system is unable to cancel the message as requested, it
  646.     should not forward the cancellation request to its neighbor systems.
  647.  
  648.     Only the author of the message or the local news administrator is
  649.     allowed to send this message.  The verified sender of a message is
  650.     the "Sender" line, or if no "Sender" line is present, the "From"
  651.     line.  The verified sender of the cancel message must be the same as
  652.     either the "Sender" or "From" field of the original message.  A
  653.     verified sender in the cancel message is allowed to match an
  654.     unverified "From" in the original message.
  655.  
  656. 3.2.  Ihave/Sendme
  657.  
  658.                    ihave <Message-ID list> [<remotesys>]
  659.                    sendme <Message-ID list> [<remotesys>]
  660.  
  661.     This message is part of the ihave/sendme protocol, which allows one
  662.     host (say A) to tell another host (B) that a particular message has
  663.     been received on A.  Suppose that host A receives message
  664.     "<1234@ucbvax.Berkeley.edu>", and wishes to transmit the message to
  665.     host B.
  666.  
  667.     A sends the control message "ihave <1234@ucbvax.Berkeley.edu> A" to
  668.     host B (by posting it to newsgroup to.B).  B responds with the
  669.     control message "sendme <1234@ucbvax.Berkeley.edu> B" (on newsgroup
  670.     to.A), if it has not already received the message.  Upon receiving
  671.  
  672.  
  673.  
  674. Horton & Adams                                                 [Page 12]
  675.  
  676. RFC 1036              Standard for USENET Messages         December 1987
  677.  
  678.  
  679.     the sendme message, A sends the message to B.
  680.  
  681.     This protocol can be used to cut down on redundant traffic between
  682.     hosts.  It is optional and should be used only if the particular
  683.     situation makes it worthwhile.  Frequently, the outcome is that,
  684.     since most original messages are short, and since there is a high
  685.     overhead to start sending a new message with UUCP, it costs as much
  686.     to send the ihave as it would cost to send the message itself.
  687.  
  688.     One possible solution to this overhead problem is to batch requests.
  689.     Several Message-ID's may be announced or requested in one message.
  690.     If no Message-ID's are listed in the control message, the body of
  691.     the message should be scanned for Message-ID's, one per line.
  692.  
  693. 3.3.  Newgroup
  694.  
  695.                       newgroup <groupname> [moderated]
  696.  
  697.     This control message creates a new newsgroup with the given name.
  698.     Since no messages may be posted or forwarded until a newsgroup is
  699.     created, this message is required before a newsgroup can be used.
  700.     The body of the message is expected to be a short paragraph
  701.     describing the intended use of the newsgroup.
  702.  
  703.     If the second argument is present and it is the keyword moderated,
  704.     the group should be created moderated instead of the default of
  705.     unmoderated.  The newgroup message should be ignored unless there is
  706.     an "Approved" line in the same message header.
  707.  
  708. 3.4.  Rmgroup
  709.  
  710.                             rmgroup <groupname>
  711.  
  712.     This message removes a newsgroup with the given name.  Since the
  713.     newsgroup is removed from every host on the network, this command
  714.     should be used carefully by a responsible administrator.  The
  715.     rmgroup message should be ignored unless there is an "Approved:"
  716.     line in the same message header.
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Horton & Adams                                                 [Page 13]
  731.  
  732. RFC 1036              Standard for USENET Messages         December 1987
  733.  
  734.  
  735. 3.5.  Sendsys
  736.                            sendsys (no arguments)
  737.  
  738.     The sys file, listing all neighbors and the newsgroups to be sent to
  739.     each neighbor, will be mailed to the author of the control message
  740.     ("Reply-To", if present, otherwise "From").  This information is
  741.     considered public information, and it is a requirement of membership
  742.     in USENET that this information be provided on request, either
  743.     automatically in response to this control message, or manually, by
  744.     mailing the requested information to the author of the message.
  745.     This information is used to keep the map of USENET up to date, and
  746.     to determine where netnews is sent.
  747.  
  748.     The format of the file mailed back to the author should be the same
  749.     as that of the sys file.  This format has one line per neighboring
  750.     host (plus one line for the local host), containing four colon
  751.     separated fields.  The first field has the host name of the
  752.     neighbor, the second field has a newsgroup pattern describing the
  753.     newsgroups sent to the neighbor.  The third and fourth fields are
  754.     not defined by this standard.  The sys file is not the same as the
  755.     UUCP L.sys file.  A sample response is:
  756.  
  757.       From: cbosgd!mark  (Mark Horton)
  758.       Date: Sun, 27 Mar 83 20:39:37 -0500
  759.       Subject: response to your sendsys request
  760.       To: mark@cbosgd.ATT.COM
  761.  
  762.       Responding-System: cbosgd.ATT.COM
  763.       cbosgd:osg,cb,btl,bell,world,comp,sci,rec,talk,misc,news,soc,to,
  764.             test
  765.       ucbvax:world,comp,to.ucbvax:L:
  766.       cbosg:world,comp,bell,btl,cb,osg,to.cbosg:F:/usr/spool/outnews
  767.             /cbosg
  768.       cbosgb:osg,to.cbosgb:F:/usr/spool/outnews/cbosgb
  769.       sescent:world,comp,bell,btl,cb,to.sescent:F:/usr/spool/outnews
  770.             /sescent
  771.       npois:world,comp,bell,btl,ug,to.npois:F:/usr/spool/outnews/npois
  772.       mhuxi:world,comp,bell,btl,ug,to.mhuxi:F:/usr/spool/outnews/mhuxi
  773.  
  774. 3.6.  Version
  775.  
  776.                            version (no arguments)
  777.  
  778.     The name and version of the software running on the local system is
  779.     to be mailed back to the author of the message ("Reply-to" if
  780.     present, otherwise "From").
  781.  
  782. 3.7.  Checkgroups
  783.  
  784.  
  785.  
  786. Horton & Adams                                                 [Page 14]
  787.  
  788. RFC 1036              Standard for USENET Messages         December 1987
  789.  
  790.  
  791.     The message body is a list of "official" newsgroups and their
  792.     description, one group per line.  They are compared against the list
  793.     of active newsgroups on the current host.  The names of any obsolete
  794.     or new newsgroups are mailed to the user "usenet" and descriptions
  795.     of the new newsgroups are added to the help file used when posting
  796.     news.
  797.  
  798. 4.  Transmission Methods
  799.  
  800.     USENET is not a physical network, but rather a logical network
  801.     resting on top of several existing physical networks.  These
  802.     networks include, but are not limited to, UUCP, the Internet, an
  803.     Ethernet, the BLICN network, an NSC Hyperchannel, and a BERKNET.
  804.     What is important is that two neighboring systems on USENET have
  805.     some method to get a new message, in the format listed here, from
  806.     one system to the other, and once on the receiving system, processed
  807.     by the netnews software on that system.  (On UNIX systems, this
  808.     usually means the rnews program being run with the message on the
  809.     standard input. <1>)
  810.  
  811.     It is not a requirement that USENET hosts have mail systems capable
  812.     of understanding the Internet mail syntax, but it is strongly
  813.     recommended.  Since "From", "Reply-To", and "Sender" lines use the
  814.     Internet syntax, replies will be difficult or impossible without an
  815.     Internet mailer.  A host without an Internet mailer can attempt to
  816.     use the "Path" header line for replies, but this field is not
  817.     guaranteed to be a working path for replies.  In any event, any host
  818.     generating or forwarding news messages must have an Internet address
  819.     that allows them to receive mail from hosts with Internet mailers,
  820.     and they must include their Internet address on their From line.
  821.  
  822. 4.1.  Remote Execution
  823.  
  824.     Some networks permit direct remote command execution.  On these
  825.     networks, news may be forwarded by spooling the rnews command with
  826.     the message on the standard input.  For example, if the remote
  827.     system is called remote, news would be sent over a UUCP link
  828.     with the command:
  829.  
  830.                               uux - remote!rnews
  831.  
  832.     and on a Berknet:
  833.  
  834.                               net -mremote rnews
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Horton & Adams                                                 [Page 15]
  843.  
  844. RFC 1036              Standard for USENET Messages         December 1987
  845.  
  846.  
  847.     It is important that the message be sent via a reliable mechanism,
  848.     normally involving the possibility of spooling, rather than direct
  849.     real-time remote execution.  This is because, if the remote system
  850.     is down, a direct execution command will fail, and the message will
  851.     never be delivered.  If the message is spooled, it will eventually
  852.     be delivered when both systems are up.
  853.  
  854. 4.2.  Transfer by Mail
  855.  
  856.     On some systems, direct remote spooled execution is not possible.
  857.     However, most systems support electronic mail, and a news message
  858.     can be sent as mail.  One approach is to send a mail message which
  859.     is identical to the news message: the mail headers are the news
  860.     headers, and the mail body is the news body.  By convention, this
  861.     mail is sent to the user newsmail on the remote machine.
  862.  
  863.     One problem with this method is that it may not be possible to
  864.     convince the mail system that the "From" line of the message is
  865.     valid, since the mail message was generated by a program on a
  866.     system different from the source of the news message.  Another
  867.     problem is that error messages caused by the mail transmission
  868.     would be sent to the originator of the news message, who has no
  869.     control over news transmission between two cooperating hosts
  870.     and does not know whom to contact.  Transmission error messages
  871.     should be directed to a responsible contact person on the
  872.     sending machine.
  873.  
  874.     A solution to this problem is to encapsulate the news message into a
  875.     mail message, such that the entire message (headers and body) are
  876.     part of the body of the mail message.  The convention here is that
  877.     such mail is sent to user rnews on the remote system.  A mail
  878.     message body is generated by prepending the letter N to each line of
  879.     the news message, and then attaching whatever mail headers are
  880.     convenient to generate.  The N's are attached to prevent any special
  881.     lines in the news message from interfering with mail transmission,
  882.     and to prevent any extra lines inserted by the mailer (headers,
  883.     blank lines, etc.) from becoming part of the news message.  A
  884.     program on the receiving machine receives mail to rnews, extracting
  885.     the message itself and invoking the rnews program.  An example in
  886.     this format might look like this:
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898. Horton & Adams                                                 [Page 16]
  899.  
  900. RFC 1036              Standard for USENET Messages         December 1987
  901.  
  902.  
  903.                 Date: Mon, 3 Jan 83 08:33:47 MST
  904.                 From: news@cbosgd.ATT.COM
  905.                 Subject: network news message
  906.                 To: rnews@npois.ATT.COM
  907.  
  908.                 NPath: cbosgd!mhuxj!harpo!utah-cs!sask!derek
  909.                 NFrom: derek@sask.UUCP (Derek Andrew)
  910.                 NNewsgroups: misc.test
  911.                 NSubject: necessary test
  912.                 NMessage-ID: <176@sask.UUCP>
  913.                 NDate: Mon, 3 Jan 83 00:59:15 MST
  914.                 N
  915.                 NThis really is a test.  If anyone out there more than 6
  916.                 Nhops away would kindly confirm this note I would
  917.                 Nappreciate it.  We suspect that our news postings
  918.                 Nare not getting out into the world.
  919.                 N
  920.  
  921.     Using mail solves the spooling problem, since mail must always be
  922.     spooled if the destination host is down.  However, it adds more
  923.     overhead to the transmission process (to encapsulate and extract the
  924.     message) and makes it harder for software to give different
  925.     priorities to news and mail.
  926.  
  927. 4.3.  Batching
  928.  
  929.     Since news messages are usually short, and since a large number of
  930.     messages are often sent between two hosts in a day, it may make
  931.     sense to batch news messages.  Several messages can be combined into
  932.     one large message, using conventions agreed upon in advance by the
  933.     two hosts.  One such batching scheme is described here; its use is
  934.     highly recommended.
  935.  
  936.     News messages are combined into a script, separated by a header of
  937.     the form:
  938.  
  939.  
  940.                    #! rnews 1234
  941.  
  942.     where 1234 is the length of the message in bytes.  Each such line is
  943.     followed by a message containing the given number of bytes.  (The
  944.     newline at the end of each line of the message is counted as one
  945.     byte, for purposes of this count, even if it is stored as <CARRIAGE
  946.     RETURN><LINE FEED>.)  For example, a batch of message might look
  947.     like this:
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954. Horton & Adams                                                 [Page 17]
  955.  
  956. RFC 1036              Standard for USENET Messages         December 1987
  957.  
  958.  
  959.                 #! rnews 239
  960.                 From: jerry@eagle.ATT.COM (Jerry Schwarz)
  961.                 Path: cbosgd!mhuxj!mhuxt!eagle!jerry
  962.                 Newsgroups: news.announce
  963.                 Subject: Usenet Etiquette -- Please Read
  964.                 Message-ID: <642@eagle.ATT.COM>
  965.                 Date: Fri, 19 Nov 82 16:14:55 EST
  966.                 Approved: mark@cbosgd.ATT.COM
  967.  
  968.                 Here is an important message about USENET Etiquette.
  969.                 #! rnews 234
  970.                 From: jerry@eagle.ATT.COM (Jerry Schwarz)
  971.                 Path: cbosgd!mhuxj!mhuxt!eagle!jerry
  972.                 Newsgroups: news.announce
  973.                 Subject: Notes on Etiquette message
  974.                 Message-ID: <643@eagle.ATT.COM>
  975.                 Date: Fri, 19 Nov 82 17:24:12 EST
  976.                 Approved: mark@cbosgd.ATT.COM
  977.  
  978.                 There was something I forgot to mention in the last
  979.                 message.
  980.  
  981.     Batched news is recognized because the first character in the
  982.     message is #.  The message is then passed to the unbatcher for
  983.     interpretation.
  984.  
  985.     The second argument (in this example rnews) determines which
  986.     batching scheme is being used.  Cooperating hosts may use whatever
  987.     scheme is appropriate for them.
  988.  
  989. 5.  The News Propagation Algorithm
  990.  
  991.     This section describes the overall scheme of USENET and the
  992.     algorithm followed by hosts in propagating news to the entire
  993.     logical network.  Since all hosts are affected by incorrectly
  994.     formatted messages and by propagation errors, it is important
  995.     for the method to be standardized.
  996.  
  997.     USENET is a directed graph.  Each node in the graph is a host
  998.     computer, and each arc in the graph is a transmission path from
  999.     one host to another host.  Each arc is labeled with a newsgroup
  1000.     pattern, specifying which newsgroup classes are forwarded along
  1001.     that link.  Most arcs are bidirectional, that is, if host A
  1002.     sends a class of newsgroups to host B, then host B usually sends
  1003.     the same class of newsgroups to host A.  This bidirectionality
  1004.     is not, however, required.
  1005.  
  1006.     USENET is made up of many subnetworks.  Each subnet has a name, such
  1007.  
  1008.  
  1009.  
  1010. Horton & Adams                                                 [Page 18]
  1011.  
  1012. RFC 1036              Standard for USENET Messages         December 1987
  1013.  
  1014.  
  1015.     as comp or btl.  Each subnet is a connected graph, that is, a path
  1016.     exists from every node to every other node in the subnet.  In
  1017.     addition, the entire graph is (theoretically) connected.  (In
  1018.     practice, some political considerations have caused some hosts to be
  1019.     unable to post messages reaching the rest of the network.)
  1020.  
  1021.     A message is posted on one machine to a list of newsgroups. That
  1022.     machine accepts it locally, then forwards it to all its neighbors
  1023.     that are interested in at least one of the newsgroups of the
  1024.     message.  (Site A deems host B to be "interested" in a newsgroup if
  1025.     the newsgroup matches the pattern on the arc from A to B.  This
  1026.     pattern is stored in a file on the A machine.)  The hosts receiving
  1027.     the incoming message examine it to make sure they really want the
  1028.     message, accept it locally, and then in turn forward the message to
  1029.     all their interested neighbors.  This process continues until the
  1030.     entire network has seen the message.
  1031.  
  1032.     An important part of the algorithm is the prevention of loops.  The
  1033.     above process would cause a message to loop along a cycle forever.
  1034.     In particular, when host A sends a message to host B, host B will
  1035.     send it back to host A, which will send it to host B, and so on.
  1036.     One solution to this is the history mechanism.  Each host keeps
  1037.     track of all messages it has seen (by their Message-ID) and
  1038.     whenever a message comes in that it has already seen, the incoming
  1039.     message is discarded immediately.  This solution is sufficient to
  1040.     prevent loops, but additional optimizations can be made to avoid
  1041.     sending messages to hosts that will simply throw them away.
  1042.  
  1043.     One optimization is that a message should never be sent to a machine
  1044.     listed in the "Path" line of the header.  When a machine name is
  1045.     in the "Path" line, the message is known to have passed through the
  1046.     machine.  Another optimization is that, if the message originated
  1047.     on host A, then host A has already seen the message.  Thus, if a
  1048.     message is posted to newsgroup misc.misc, it will match the pattern
  1049.     misc.all (where all is a metasymbol that matches any string), and
  1050.     will be forwarded to all hosts that subscribe to misc.all (as
  1051.     determined by what their neighbors send them).  These hosts make up
  1052.     the misc subnetwork.  A message posted to btl.general will reach all
  1053.     hosts receiving btl.all, but will not reach hosts that do not get
  1054.     btl.all.  In effect, the messages reaches the btl subnetwork.  A
  1055.     messages posted to newsgroups misc.misc,btl.general will reach all
  1056.     hosts subscribing to either of the two classes.
  1057.  
  1058. Notes
  1059.  
  1060.     <1>  UNIX is a registered trademark of AT&T.
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Horton & Adams                                                 [Page 19]
  1067.